package pandora.box.usuarionegocio;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import pandora.box.ramoatividade.RamoAtividade;
import pandora.box.usuarioempresa.UsuarioEmpresa;

@Entity
@Table(name="USUARIONEGOCIO")
public class UsuarioNegocio implements Serializable {
	private static final long serialVersionUID = 1L;
	
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="idUSUARIONEGOCIO")
	private Integer idusuarionegocio;
	
	@ManyToOne
	@JoinColumn(name="idUSUARIOEMPRESA")
	private UsuarioEmpresa usuarioempresa;
	
	@ManyToOne
	@JoinColumn(name="idRAMOATIVIDADE")
	private RamoAtividade ratividade;
	
	/**
	@OneToOne(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
    @JoinTable(name="USUARIONEGOCIO", joinColumns={@JoinColumn(name="idUSUARIOEMPRESA", referencedColumnName="idUSUARIOEMPRESA")}, inverseJoinColumns={@JoinColumn(name="idRAMOATIVIDADE", referencedColumnName="idRAMOATIVIDADE")})
    private List usuarioemp;
	

	@OneToMany(fetch=FetchType.EAGER)
	@JoinColumn(name="fk_USUARIONEGOCIO_USUARIOSEMPRESA", referencedColumnName="IDUSUARIOEMPRESA")
	private UsuarioEmpresa usuarioempresa;
	
	@OneToMany(fetch=FetchType.EAGER)
	@JoinColumn(name="fk_USUARIONEGOCIO_RAMOATIVIDADE", referencedColumnName="idRAMOATIVIDADE")
	private RamoAtividade ramoatividade;
	**/
	
	public Integer getIdusuarionegocio() {
		return idusuarionegocio;
	}

	public void setIdusuarionegocio(Integer idusuarionegocio) {
		this.idusuarionegocio = idusuarionegocio;
	}
	
	public static long getSerialversionuid() {
		return serialVersionUID;
	}
	
	public UsuarioEmpresa getUsuarioempresa() {
		return usuarioempresa;
	}

	public void setUsuarioempresa(UsuarioEmpresa usuarioempresa) {
		this.usuarioempresa = usuarioempresa;
	}

	public RamoAtividade getRatividade() {
		return ratividade;
	}

	public void setRatividade(RamoAtividade ratividade) {
		this.ratividade = ratividade;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime
				* result
				+ ((idusuarionegocio == null) ? 0 : idusuarionegocio.hashCode());
		result = prime * result
				+ ((ratividade == null) ? 0 : ratividade.hashCode());
		result = prime * result
				+ ((usuarioempresa == null) ? 0 : usuarioempresa.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		UsuarioNegocio other = (UsuarioNegocio) obj;
		if (idusuarionegocio == null) {
			if (other.idusuarionegocio != null)
				return false;
		} else if (!idusuarionegocio.equals(other.idusuarionegocio))
			return false;
		if (ratividade == null) {
			if (other.ratividade != null)
				return false;
		} else if (!ratividade.equals(other.ratividade))
			return false;
		if (usuarioempresa == null) {
			if (other.usuarioempresa != null)
				return false;
		} else if (!usuarioempresa.equals(other.usuarioempresa))
			return false;
		return true;
	}
	
}
